MATLAB 复习

基础

  • A = [1,2,3; 4,5,6; 7,8,9]
  • 初始值 : 步长 : 终止值 (其中包括起始值和终止值)
  • 字符串用==单引号==括起来( ' 用两个单引号 '' 转义)

函数复习

  • linspace(x, y, z) : 生成行向量 ( x 为首元素,y 为末元素,z 为个数)
  • reshape(A, m, n) : 改变矩阵形状
  • rem (a, b) : 取余
  • fix (a) : 向==零方向==取整
  • floor(a) : 向==负无穷方向==取整
  • ceil(a) : 向==正无穷方向==取整
  • log(a) : ==自然对数==
  • exp(a) : 自然指数
  • find(a) : 找非零元素的位置
  • length(a) : 求长度
  • ==zeros(a) : 产生全 0 矩阵==
  • ==ones(a) : 产生全 1 矩阵==
  • ==eye(a) : 单位阵==
  • rand(num) : 产生 (0, 1) 区间均匀分布的随机矩阵,num为阶数
  • eg : x = 20+(50-20)*rand(5)
  • diag(A[ , num]) : 提取矩阵的对角线元素;构造对角阵
  • 提取主对角线元素形成列向量,主对角线以上记为正数,以下记为负数,num 即为哪条对角线
  • 构造对角阵同理,但 A 必须要为行向量
  • triu(A[ , num]) : 上三角阵,与上同理
  • tril(A[ , num]) : 下三角阵,与上同理
  • A' : 共轭转置
  • A.' : 转置 (实数范围内,共轭转置和转置结果一样)
  • ==inv(A) : 矩阵求逆==
  • ==det(A) : 求方阵对应行列式的值==
  • ==rank(A) : 矩阵求秩==
  • ==trace(A) : 矩阵求迹==(迹为矩阵对角线元素之和,也等于矩阵的特征值之和)
  • norm(V[ , 1 / 2 or null / inf ]) : 求 1-范数,2-范数和无穷大范数
  • cond(A[ , 1 / 2 or null / inf ]) : 求在 1-范数,2-范数和无穷大范数下的条件数
  • eig(A) : 求矩阵的全部特征向量
  • A = input ( '提示信息' [, 's' ]);
  • 如果要输入字符串就加上后面的 's' 选项
  • disp(a) : 输出内容
  • pause(延迟秒数) : 暂停程序
  • ==plot(x, y)== : 以 x, y 为横纵坐标绘制二维曲线,其中 x, y 为长度相同的向量
  • 当 x, y 为同型矩阵时,则以 x, y 对应列元素为横纵坐标绘制,曲线条数等于矩阵列数
  • 可以输入多组 x, y 以绘制多条曲线,跟在前一组可选参数后面
  • 可选参数:

-.                                    :                               --

实线(默认值) 点画线 虚线 双划线 b (blue) 蓝色

g (green) 绿色

r (red) 红色

c (cyan) 青色

m (magenta) 品红

y (yellow) 黄色

k (black) 黑色

w (white) 白色 . 点

o (字母) 圆圈

x (字母) 叉号

+ 加号

* 星号

s ( square ) 方块

d ( diamond ) 菱形

v (字母) 朝下三角

^ 朝上三角

< 朝左三角

> 朝右三角

p ( pentagram ) 五角星

h ( hexagram ) 六角星

  • plotyy(x1, y1, x2, y2) : 双纵坐标函数
  • title(图形名称) 图形标注
  • xlabel(x 轴说明) 图形标注
  • ylabel(y 轴说明) 图形标注
  • text(x, y, 图形说明) 图形标注
  • legend(图例1, 图例2, ...) 图形标注,图例即介绍线型和作用的,类似于地图

hold on;

hold off;

作用即控制是否保持原有图形还是刷新原有图形

  • subplot(m, n, p) : 将窗口分割成 m x n 个绘图区,m 行,每行 n 个,依次编号,选中第 p 个区域
  • fplot(filename, lims, 选项) : 自适应采样绘图
  • filename : 代表一个函数,通常采用函数句柄的形式,也可以是字符串形式
  • lims : x 轴的取值范围,取二元向量 [xmin, xmax] , 默认值为 [-5, 5]
  • polar(theta, rho, 选项) : 极坐标绘图
  • theta : 极坐标极角
  • rho : 极坐标极径
  • ==其他形式二维图形暂不列出==
  • plot3(x, y, z, 选项) : 绘制三维曲线
    • 三维曲面绘制函数
  • meshgrid(x, y) : 生成平面网格坐标矩阵,其中 x, y 为冒号表达式或者行向量
  • mesh(x, y, z, c) : x, y, z 为同型矩阵,x, y 是网格坐标矩阵,z 是网格高度矩阵,c 为色标矩阵用于指定曲面颜色,c有默认值,输入时可以不予指定。在不需要绘制特别精细的三维曲面图时,可以通过三维网格图表示三维曲面
  • surf(x, y, z, c) : x, y, z, c 与上同理,各线条之间的补面用颜色填充
  • ==其他形式三维图形暂不列出==
  • ezplot(f [, a, b] ) : f 为一个函数 y=f(x) ,可选参数 a, b 为 x 的区间,如果要设定 y 的区间,跟在 x 的区间后面即可,默认区间为 -2π < x < 2π 。其中 f 可以为函数文件名或者函数表达式组成的字符串

运算复习

  • *
  • (左除)
  • / (右除)
  • <
  • <=
  • >
  • >=
  • ==
  • ~= (不等于)
  • ^ (乘方)
  • &
  • |
  • ~
  • xor (异或)
  • 点运算

流程控制

  • if 结构:

if 条件

        语句组

end if 条件

        语句组1

else

        语句组2

end if 条件1

        语句组1

elseif 条件2

        语句组2

        ……

else

        语句组n

end

不需要像 python 那样条件后面跟冒号,也不需要大括号,最后要有 end 标识。

  • switch 结构:

switch 表达式

        case 结果表1

                语句组1

        case 结果表2

                语句组2

                ……

        case 结果表n

                语句组n

        otherwise

                语句组n

end

  • for 结构:

for 循环变量=表达式1 : 表达式2 : 表达式3

        循环体语句

end

表达式块为一个冒号表达式,产生一个行向量,如果有行向量矩阵可供直接使用,那么将同该行向量的效果一样,将行向量里的每一个元素代入到循环体语句中执行,知道该行向量元素循环完毕。

  • while 结构:

while 条件

        循环体语句

end

  • break 和 continue :与其他编程语言中效果相同

文件

  • 格式:

function 输出形参表=函数名(输入形参表)

        注释说明部分

        函数体语句

  • 函数文件名一般跟函数名相同。如果不一致,调用则直接使用函数名;
  • 有 return 语句;
  • 有递归调用;
  • 匿名函数格式:

函数句柄变量=@(匿名函数输入参数) 匿名函数表达式

函数句柄变量:相当于函数别名,可以通过其间接调用函数

@:创建函数句柄的运算符